
/*
 * @Descripttion: your project
 * @version: 1.0
 * @Author: hongweixun
 * @Date: 2022-07-07 08:24:12
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2025-04-29 15:21:58
 */
import FileSaver from 'file-saver'
import XLSX from 'xlsx'
import moment from 'moment';
// 此util.js工具类封装全局调用的方法
export default {
  // 封装post请求params传值的方法,当值有多个时调用
  toParams (list) {
    var params = new URLSearchParams()
    for (var key in list) {
      // console.log(key)
      params.append(key, list[key])
    }
    return params
  },
  // 封装post请求params传值的方法，当值为单个时调用
  // name为单个值对应的key值
  // value为单个key值对应的value值
  toParamSemi (name, value) {
    var params = new URLSearchParams()
    params.append(name, value)
    return params
  },
  // 导出execlbiaoge
  exportExcel (domId, fileName) {
    /* 转换成excel时，使用原始的格式，解决数字列自动转科学计数法问题 */
    const xlsxParam = { raw: true }
    const wb = XLSX.utils.table_to_book(document.querySelector('#' + domId), xlsxParam)
    const wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' })
    try {
      FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), fileName + '.xlsx')
    } catch (e) {
      if (typeof console !== 'undefined') {
        console.log(e, wbout)
      }
    }
    return wbout
  },
  getNowData(timestamp) {
    var date = new Date(timestamp * 1000)// 时间戳若为10位时需*1000
    var Y = date.getFullYear()
    var M = date.getMonth() + 1 >= 10 ? date.getMonth() + 1 : '0' + (date.getMonth() + 1)
    var D = date.getDate() >= 10 ? date.getDate() : '0' + date.getDate()
    return `${Y}-${M}-${D}`
  },
  // 获取当前时间（年月日 星期 时分秒）
  getNowTime(timestamp) {
    var date = new Date(timestamp * 1000)// 时间戳若为10位时需*1000
    var h = date.getHours() >= 10 ? date.getHours() : '0' + date.getHours()
    var m = date.getMinutes() >= 10 ? date.getMinutes() : '0' + date.getMinutes()
    return `${h}:${m}`
  },
  getNowTime2(timestamp) {
    var date = new Date(timestamp * 1000)// 时间戳若为10位时需*1000
    var h = date.getHours() >= 10 ? date.getHours() : '0' + date.getHours()
    var m = date.getMinutes() >= 10 ? date.getMinutes() : '0' + date.getMinutes()
    var s = date.getSeconds() >= 10 ? date.getSeconds() : '0' + date.getSeconds()
    return `${h}:${m}:${s}`
  },
  getNowData2(timestamp) {
    var date = new Date(timestamp * 1000)// 时间戳若为10位时需*1000
    var Y = date.getFullYear()
    var M = date.getMonth() + 1 >= 10 ? date.getMonth() + 1 : '0' + (date.getMonth() + 1)
    var D = date.getDate() >= 10 ? date.getDate() : '0' + date.getDate()
    // 星期
    var week = date.getDay()
    return `${Y}年${M}月${D}日 ` + this.weeks(week)
  },
  // 小于10的拼接上0字符串
  addZero (s) {
    return s < 10 ? ('0' + s) : s
  },
  weeks (s) {
    if (s === 0) {
      return '星期日'
    } else if (s === 1) {
      return '星期一'
    } else if (s === 2) {
      return '星期二'
    } else if (s === 3) {
      return '星期三'
    } else if (s === 4) {
      return '星期四'
    } else if (s === 5) {
      return '星期五'
    } else {
      return '星期六'
    }
  },
  nowSize(val) {
    var nowClientWidth = document.documentElement.clientWidth
    return val * (nowClientWidth / 1920)
  },
  // 时间增加30分钟后得出来的数据
  addMinutes(time, minutes) {
    // addMinutes('12:45', 30)
    // 将时间字符串转换为小时和分钟
    const [hours, minutesStr, seconds] = time.split(':');
    const totalMinutes = parseInt(hours, 10) * 60 + parseInt(minutesStr, 10);
    // 加上额外的分钟数
    const newTotalMinutes = totalMinutes + minutes;
    // 计算新的小时和分钟
    const newHours = Math.floor(newTotalMinutes / 60);
    const newMinutes = newTotalMinutes % 60;
    // 格式化结果为HH:MM
    return `${String(newHours).padStart(2, '0')}:${String(newMinutes).padStart(2, '0')}:${seconds}`;
  },
  // 判断当前时间是否在某个时段内
  isInTimeRange(val, timeRage) {
    const now = moment(val, 'HH:mm:ss')
    const start = moment((timeRage.split('/')[0]).split('-')[0], 'HH:mm:ss')
    const end = moment((timeRage.split('/')[0]).split('-')[1], 'HH:mm:ss')
    let arr = ''
    if (now.isBetween(start, end)) {
      arr = `${timeRage.split('/')[1]}/${timeRage.split('/')[2]}/${timeRage.split('/')[3]}/${timeRage.split('/')[4]}`
    }
    return arr
  },
}
